home *** CD-ROM | disk | FTP | other *** search
- **********************************************************************
- ** INDENT.PRG - WRITTEN APRIL 1985 BY KIRT GRUBBS (IN dBase II)
- ** CREATES CONSISTENT INDENTATION PATTERN FOR PROGRAM FILES
- ** DCONVERTED 5/85 BY MARK HEMSLEY
- ** UPDATED 6/85 BY MARK HEMSLEY
- ** (TO PROVIDE USER WITH PROGRAM STATUS AT EXECUTION)
- ** COMPLETLY RE-WRITTEN 8/85 BY MARK HEMSLEY - REDUCED EXECUTION TIME
- ** TO 1/3 OF ORIGINAL dBase II PROGRAM
- ** UPDATING CONT'D INCLLUDING MAJOR DEBUGGING 9/85
- ** TO 1/4 OF ORIGINAL dBase II PROGRAM
- ** LAST UPDATE: 09:25:41 09/20/85
- *
- SET SAFE OFF
- SET TALK OFF
- SET EXAC OFF
- CLEA ALL
- STOR 0 TO I,S,U
- STOR ' ' TO L
- STOR 'FAST INDENT VERSION 3.4' TO VERSION
- STOR 'HI' TO NAME
- DO WHIL LEN(TRIM(NAME))#0
- CLEA
- STOR ' ' TO NAME
- @ 15,15 SAY "PROGRAM NAME" GET NAME PICT "XXXXXXXXXXXX"
- READ
- IF LEN(TRIM(NAME))>0
- STOR TRIM(NAME) TO NAME
- IF .NOT.'.'$NAME
- STOR NAME+'.PRG' TO NAME
- ENDI
- IF .NOT.FILE(NAME)
- ? "FILE DOES NOT EXIST"
- WAIT
- ELSE
- STOR NAME+' '+SUBSTR(NAME,1,LEN(NAME)-4)+'.BAK' TO MHFILE
- !COPY &MHFILE
- USE INDENT.DBS
- ZAP
- CLEA
- ? VERSION+' IN PROGRESS.'
- ?
- ? '>>> WARNING! <<< DO NOT INTERRUPT THIS PROGRAM,'
- ? ' OR YOUR DATA FILE WILL BE DESTROYED!'
- SET CONS OFF
- @ 16,0 SAY 'NAME: '+NAME
- @ 14,0 SAY 'READING FILE...'
- APPE FROM &NAME SDF
- GO TOP
- @ 14,0 SAY 'SEARCHING......'
- LOCA FOR TRIM(LINE)='** LAST UPDATE:'
- IF .NOT. EOF()
- REPL LINE WITH '** LAST UPDATE: '+TIME()+' '+DTOC(DATE())
- ENDI
- GO TOP
- @ 14,0 SAY 'UPDATING.......'
- IF LINE=SPAC(254)
- DELE
- PACK
- ENDI
- GO BOTT
- STOR RECN() TO LENGTH
- @ 12,0 SAY 'LENGTH: '+STR(RECNO())
- GO TOP
- SET ALTE TO &NAME
- SET ALTE ON
- @ 14,0 SAY ' '
- @ 14,0 SAY 'LINE: '
- SET ESCAPE OFF
- STOR TIME() TO START
- DO WHIL TIME()=START
- ENDD
- ************************************************
- STOR TIME() TO START
- DO WHIL .NOT. EOF()
- IF LINE=SPAC(254)
- ?
- ELSE
- @ 14,8 SAY RECN()
- RELE L
- STOR 0 TO S,U
- STOR TRIM(LINE) TO L
- DO WHIL L<'!'
- STOR SUBS(L,2,254) TO L
- IF L=' '
- STOR SUBS(L,15,254) TO L
- ENDI
- IF L=' '
- STOR SUBS(L,9,254) TO L
- ENDI
- IF L=' '
- STOR SUBS(L,3,254) TO L
- ENDI
- ENDD
- DO CASE
- CASE L='IF'
- STOR 3 TO S
- CASE L='DO WHIL'
- STOR 3 TO S
- CASE L='ENDI'
- STOR -3 TO S
- CASE L='ENDD'
- STOR -3 TO S
- CASE L='CASE'
- STOR 5 TO U
- CASE L='OTHE'
- STOR 5 TO U
- CASE L='DO CASE'
- STOR 8 TO S
- CASE L='ENDC'
- STOR -8 TO S
- CASE L='ELSE'
- STOR 3 TO U
- ENDC
- STOR S+I TO I
- IF S>0
- STOR S TO U
- ENDI
- ?? SPAC(I-U)+L
- ?
- ENDI
- SKIP
- ENDD
- STOR TIME() TO FINISH
- *****************************************************
- SET ESCAPE ON
- @ 14,40 SAY 'DONE'
- SET ALTE OFF
- SET ALTE TO
- ZAP
- SET CONS ON
- STARTHOUR=VAL(SUBSTR(START,1,2))
- STARTMIN=VAL(SUBSTR(START,4,2))
- STARTSEC=VAL(SUBSTR(START,7,2))
- FINISHHOUR=VAL(SUBSTR(FINISH,1,2))
- FINISHMIN=VAL(SUBSTR(FINISH,4,2))
- FINISHSEC=VAL(SUBSTR(FINISH,7,2))
- TIMEINSEC1=(STARTHOUR*3600)+(STARTMIN*60)+STARTSEC
- TIMEINSEC2=(FINISHHOUR*3600)+(FINISHMIN*60)+FINISHSEC
- TIMEINSEC=TIMEINSEC2-TIMEINSEC1
- CLEA
- ? 'RUNTIME REPORT ON INDENT'
- ? 'TODAY IS '+DTOC(DATE())+' '+TIME()
- ?
- ? 'REPORT FOR : '+VERSION
- ?
- ?
- ? 'FILE : '+NAME
- ? 'START : '+START
- ? 'FINISH : '+FINISH
- ? 'LENGTH : '+STR(LENGTH)
- ?
- ? 'TIME IN SECONDS: '+STR(TIMEINSEC)
- ? 'TIME : '
- TIMEHOUR=INT(TIMEINSEC/3600)
- SET EXAC OFF
- IF STR(TIMEHOUR)='*'
- STOR 0 TO TIMEHOUR
- ENDI
- TIMEMIN=INT((TIMEINSEC-TIMEHOUR*3600)/60)
- IF STR(TIMEMIN)='*'
- STOR 0 TO TIMEMIN
- ENDI
- TIMESEC=INT(TIMEINSEC-((TIMEHOUR*3600)+(TIMEMIN*60)))
- ?? STR(TIMEHOUR,2,0)+':'+STR(TIMEMIN,2,0)+':'+STR(TIMESEC,2,0)
- ?
- SET DECI TO 3
- STOR TIMEINSEC/LENGTH TO REFERANCE
- STOR .146342 TO REINDENT
- ? 'REFERANCE : '+STR(REFERANCE,7,3)+' SECONDS PER RECORD'
- ?
- WAIT
- ENDI
- ENDI
- ENDD
- USE
- CLEA
-
-